package com.chaosj.skill.zipkin.annotations

import java.lang.annotation.ElementType
import java.lang.annotation.Inherited
import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy
import java.lang.annotation.Target

/**
 * @Description:
 * @author: caoyangjie
 * @date: 2019年12月2019/12/6日 09:04
 * @Copyright: © 赢时胜
 */
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Target(value =  ElementType.METHOD )
@interface NewSpan {
    /**
     * 当前 获取的服务名称
     * @return
     */
    String nameExpression() default  "#serviceMap.serviceInfo.className";
    /**
     * 当前所需标记的annotate值
     * @return
     */
    String annotateExpression() default "";

    /**
     * 当前所需记录的 tag 表达式
     * @return
     */
    String[] tagExpression() default [""];
    /**
     * 标注 当前服务名称
     * @return
     */
    String name() default "";
    /**
     * 标注 当前注解名称
     * @return
     */
    String annotate() default "";
    SpanEnum type() default SpanEnum.APPEND;
}